//iesd.dll

#ifdef IESD_EXPORTS
#define IESD_API __declspec(dllexport)
#else
#define IESD_API __declspec(dllimport)
#endif


// STRUCTURES ///////////////////////////////////

typedef struct tagModule {
	int * data;
	size_t width;
	size_t height;
} MODULE, PMODULE;

// FUNCTIONS ////////////////////////////////////

IESD_API BOOL IESD_Gamma			(PIMAGE, double, double);	// gamma
IESD_API BOOL IESD_GradAver			(PIMAGE);					// gradiant average
IESD_API BOOL IESD_HistEqua			(PIMAGE);					// histogram equalization
IESD_API BOOL IESD_HistMatch		(PIMAGE, PIMAGE);			// histogram match
IESD_API BOOL IESD_HistStat			(PIMAGE, size_t, size_t);		// histogram statistic
IESD_API BOOL IESD_KirschDirFct3	(PIMAGE);					// Kirsch direction factor3
IESD_API BOOL IESD_KirschDirFct5	(PIMAGE);					// Kirsch direction factor5
IESD_API BOOL IESD_Log				(PIMAGE, double);			// log
IESD_API BOOL IESD_Median			(PIMAGE);					// median filtering
IESD_API BOOL IESD_NevitiaDirFct5	(PIMAGE);					// nevitia direction factor 5
IESD_API BOOL IESD_Opposite			(PIMAGE);					// opposite
IESD_API BOOL IESD_PrewittEdge		(PIMAGE);					// Prewitt edge
IESD_API BOOL IESD_RobertsEdge		(PIMAGE);					// Roberts edge
IESD_API BOOL IESD_SeedSpread		(PIMAGE, int);				// seed spread
IESD_API BOOL IESD_SimpleSpread		(PIMAGE, int);				// simple spread
IESD_API BOOL IESD_SobelEdge		(PIMAGE);					// Sobel edge
IESD_API BOOL IESD_Clr2Gray			(PIMAGE);					// color to gray
IESD_API BOOL IESD_UsrMesh			(PIMAGE, PMODULE);	// user-defined mesh filtering